package com.ydj.framework.utils;

import lombok.extern.slf4j.Slf4j;

import java.util.HashMap;
import java.util.Map;

/**
 * Log 工具类
 *
 * @author Max
 */
@Slf4j
public class LogUtils {
	/**
	 * Map<模块名, 模块开始时间>
	 */
	private static Map<String, Long> timeMap = new HashMap<>();

	/**
	 * 记录模块开始时间
	 *
	 * @param moduleName    模块名
	 */
	public static void beginTime(String moduleName) {
		timeMap.put(moduleName, System.currentTimeMillis());
	}

	/**
	 * 记录模块结束时间
	 *
	 * @param moduleName    模块名
	 * @return string       结束时间信息
	 */
	public static void endTime(String moduleName) {
		StringBuilder sb = new StringBuilder();
		Long time = timeMap.get(moduleName);
		if (time != null) {
			time = System.currentTimeMillis() - time;
			String timeStr = sb.append(moduleName).append("所用时间：").append(time).append(" 毫秒").toString();

			// 时间大于 50 毫秒就警告
			if (time > 50) {
				log.error(timeStr);
			} else {
				log.info(timeStr);
			}

			timeMap.remove(moduleName);
		}
	}
}